/**Ribbon+RestTemplate
 * 1）依赖库：SpringCloud版本为Hoxton及以下，核心依赖为spring-boot-starter-web和spring-cloud-starter-netflix-ribbon
 * 2）定义RestTemplate，用@Loadbanlanced注解之（公共@configurayion文件或main文件）
 * 3）在YAML或@configuration文件中定义负载均衡策略和服务器列表（服务名大写有效）
 * 4）可选：@RibbonClient仅在独配置规则和无服务发现时使用，服务名大写有效（公共@configurayion文件或main文件）
 * 5）注入RestTemplate或LoadBalancerClient，用服务名称调用微服务（consummer controller文件）
 */
package com.example.demoribbonclientwithouteureka;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

@SpringBootApplication
public class DemoRibbonClientWithoutEurekaApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoRibbonClientWithoutEurekaApplication.class, args);
    }

    @Bean
    @LoadBalanced    //启用负载均衡
    public RestTemplate restTemplate() {
        return new RestTemplate();
    }

    //定义负载均衡策略
//    @Bean
//    public IRule ribbonRule() {
//        return new RandomRule();
//    }
}
